/*
 * AnonymousStatmenet.h
 *
 *  Created on: Oct 2, 2008
 *      Author: V
 */

#ifndef ANONYMOUSSTATMENET_H_
#define ANONYMOUSSTATMENET_H_

#include "../string/String.h"

//#include "Argument.h"

struct ArgumentTag; //*pArgument, **ArgumentList

typedef struct AnonymousStatementTag
{
	pString operator;
	struct ArgumentTag** argumentList;
	pString (*eval)(struct AnonymousStatementTag*);
	pString (*toString)(struct AnonymousStatementTag*);
	pString (*logic)(struct ArgumentTag**);
	struct AnonymousStatementTag* (*clone)(struct AnonymousStatementTag*);
} AnonymousStatement, *pAnonymousStatement, **AnonymousStatementList;

pAnonymousStatement AnonymousStatement_new();

pString AnonymousStatement_eval(pAnonymousStatement statement);

pString AnonymousStatement_toString(pAnonymousStatement statement);

//pAnonymousStatement AnonymousStatement_clone(pAnonymousStatement statement);

AnonymousStatementList AnonymousStatement_cloneLint(AnonymousStatementList list);

#endif /* ANONYMOUSSTATMENET_H_ */
